import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import warnings
import json
import glob
from pathlib import Path
import plotly.express as px
import plotly.graph_objects as go
from ipl_functions import formula_barplot, formula_scatterplot, formula_scatterplot_multiple_data
from ipl_functions import all_players_stats_year, all_players_stats_year_list, season_player_team_stats
from ipl_functions import plot_all_top_5_dict, plot_team_top_5
pd.set_option('display.max_columns', 100)
plt.style.use('dark_background')
warnings.filterwarnings('ignore')
all_data = []
for p in glob.glob('../Data/ipl_json/*.json'):
with open(p) as file:
data = json.load(file)
all_data.append(data)
all_teams = []
for i in all_data:
for j in i['info']['teams']:
if j not in all_teams:
all_teams.append(j)
#all_teams
all_players = []
for i in all_teams:
for j in all_data:
try:
if j['info']['players'][i]:
for k in j['info']['players'][i]:
if k not in all_players:
all_players.append(k)
except:
None
all_cols = ['player_name', 'matches_played', 'innings_batted', 'innings_bowled', 'matches_won', 'runs_scored',
'balls_played', 'batting_avg', 'batting_strike_rate', 'catches', 'run_outs', 'balls_bowled', 'runs_given',
'wickets_taken', 'wickets_per_innings', 'bowling_avg', 'bowling_strike_rate', 'bowling_eco',
'four_scored', 'six_scored', 'four_given', 'six_given', 'extras_for', 'extras_against', 'scores_above_30',
'strike_rate_30', 'multi_wickets', 'man_of_match', 'trophies', 'formula_batter', 'formula_bowler', 'formula_fielder']
all_players_year_df = pd.DataFrame(columns=all_cols)
player_08 = all_players_stats_year(all_players, all_data, all_players_year_df, '2008')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_09 = all_players_stats_year(all_players, all_data, all_players_year_df, '2009')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_10 = all_players_stats_year(all_players, all_data, all_players_year_df, '2010')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_11 = all_players_stats_year(all_players, all_data, all_players_year_df, '2011')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_12 = all_players_stats_year(all_players, all_data, all_players_year_df, '2012')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_13 = all_players_stats_year(all_players, all_data, all_players_year_df, '2013')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_14 = all_players_stats_year(all_players, all_data, all_players_year_df, '2014')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_15 = all_players_stats_year(all_players, all_data, all_players_year_df, '2015')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_16 = all_players_stats_year(all_players, all_data, all_players_year_df, '2016')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_17 = all_players_stats_year(all_players, all_data, all_players_year_df, '2017')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_18 = all_players_stats_year(all_players, all_data, all_players_year_df, '2018')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_19 = all_players_stats_year(all_players, all_data, all_players_year_df, '2019')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_20 = all_players_stats_year(all_players, all_data, all_players_year_df, '2020')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_21 = all_players_stats_year(all_players, all_data, all_players_year_df, '2021')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_22 = all_players_stats_year(all_players, all_data, all_players_year_df, '2022')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_23 = all_players_stats_year(all_players, all_data, all_players_year_df, '2023')
all_players_year_df = pd.DataFrame(columns=all_cols)
player_24 = all_players_stats_year(all_players, all_data, all_players_year_df, '2024')
player_team = {}
for i in all_players:
all_teams_played = []
for j in all_teams:
xy = {}
yy = []
for k in all_data:
for t in k['info']['players'].keys():
if t == j and i in k['info']['players'][t]:
if k['info']['dates'][0][:4] not in yy:
yy.append(k['info']['dates'][0][:4])
xy[t] = yy
if xy:
all_teams_played.append(xy)
#all_teams_played.append(j)
player_team[str(i)] = all_teams_played
import json
with open('player_team_year', 'w') as file:
json.dump(player_team, file)
player_team['R Dravid']
[{'Royal Challengers Bangalore': ['2008', '2009', '2010']},
{'Rajasthan Royals': ['2011', '2012', '2013']}]
#These data frames were parsed in ipl.ipynb
player_df_2010_14 = pd.read_csv('../Data/ipl_all_player_df_2010_14.csv')
player_df_2015_19 = pd.read_csv('../Data/ipl_all_player_df_2015_19.csv')
player_df_2020_24 = pd.read_csv('../Data/ipl_all_player_df_2020_24.csv')
all_players_df = pd.read_csv('../Data/ipl_all_player_df.csv')
formula_scatterplot_multiple_data(player_df_2010_14, player_df_2015_19, player_df_2020_24,
'matches_played', 'runs_scored', 'four_scored', 'matches_played',
['player_name', 'batting_strike_rate', 'matches_won'], '2010-2014', '2015-2019', '2020-2024')
formula_scatterplot_multiple_data(player_df_2010_14, player_df_2015_19, player_df_2020_24,
'runs_scored' , 'runs_scored', 'six_scored', 'matches_played',
['player_name', 'batting_strike_rate', 'matches_won'],'2010-2014', '2015_-2019', '2020-2024')
formula_scatterplot_multiple_data(player_df_2010_14, player_df_2015_19, player_df_2020_24,
'matches_played', 'runs_scored', 'scores_above_30', 'matches_played',
['player_name', 'strike_rate_30', 'matches_won'],'2010-2014', '2015_-2019', '2020-2024')
formula_scatterplot_multiple_data(player_df_2010_14, player_df_2015_19, player_df_2020_24,
'runs_scored', 'matches_played', 'strike_rate_30', 'matches_played',
['player_name', 'batting_strike_rate', 'matches_won'], '2010-2014', '2015_-2019', '2020-2024')
formula_scatterplot_multiple_data(player_df_2010_14, player_df_2015_19, player_df_2020_24,
'wickets_taken', 'matches_played', 'multi_wickets', 'matches_played',
['player_name', 'bowling_eco'], '2010-2014', '2015_-2019', '2020-2024')
formula_scatterplot_multiple_data(player_df_2010_14, player_df_2015_19, player_df_2020_24,
'wickets_taken', 'matches_played', 'four_given', 'innings_bowled',
['player_name', 'bowling_eco'], '2010-2014', '2015_-2019', '2020-2024')
formula_scatterplot_multiple_data(player_df_2010_14, player_df_2015_19, player_df_2020_24,
'wickets_taken', 'matches_played', 'six_given', 'innings_bowled',
['player_name', 'bowling_eco'], '2010-2014', '2015_-2019', '2020-2024')
formula_scatterplot_multiple_data(player_df_2010_14, player_df_2015_19, player_df_2020_24,
'formula_fielder', 'matches_played', 'catches', 'matches_played',
['player_name', 'runs_scored', 'wickets_taken'], '2010-2014', '2015_-2019', '2020-2024')
formula_scatterplot_multiple_data(player_df_2010_14, player_df_2015_19, player_df_2020_24,
'formula_fielder', 'matches_played', 'run_outs', 'matches_played',
'player_name', '2010-2014', '2015_-2019', '2020-2024')
formula_scatterplot_multiple_data(player_df_2010_14, player_df_2015_19, player_df_2020_24,
'man_of_match', 'matches_played', 'man_of_match', 'matches_played',
['player_name', 'runs_scored', 'scores_above_30', 'batting_strike_rate'], '2010-2014', '2015_-2019', '2020-2024')
years = ['2008', '2009', '2010', '2011', '2012', '2013', '2014', '2015',
'2016', '2017', '2018', '2019', '2020', '2021', '2022', '2023',
'2024']
player_years_data = [player_08, player_09, player_10, player_11, player_12,
player_13, player_14, player_15, player_16, player_17,
player_18, player_19, player_20, player_21, player_22,
player_23, player_24]
player_runs_dict = {}
player_sr_dict = {}
player_runs_30_dict = {}
player_sr_30_dict = {}
player_four_scored_dict = {}
player_six_scored_dict = {}
player_wickets_dict = {}
player_multi_wickets_dict = {}
player_bowling_eco_dict = {}
player_bowling_sr_dict = {}
player_four_given_dict = {}
player_six_given_dict = {}
player_catches_dict = {}
player_runouts_dict = {}
player_matches_dict = {}
for i in all_players:
runs = []
sr = []
runs_30 = []
sr_30 = []
four_for = []
six_for = []
wickets = []
multi_wickets = []
bowling_eco = []
bowling_sr = []
four_against = []
six_against = []
catches = []
run_outs = []
matches_played = []
for data in player_years_data:
if i in data['player_name'].tolist():
runs.append(data[data['player_name'] == i]['runs_scored'].values[0])
matches_played.append(data[data['player_name'] == i]['matches_played'].values[0])
sr.append(np.round(data[data['player_name'] == i]['batting_strike_rate'].values[0], 2))
runs_30.append(data[data['player_name'] == i]['scores_above_30'].values[0])
sr_30.append(np.round(data[data['player_name'] == i]['strike_rate_30'].values[0], 2))
four_for.append(data[data['player_name'] == i]['four_scored'].values[0])
six_for.append(data[data['player_name'] == i]['six_scored'].values[0])
wickets.append(data[data['player_name'] == i]['wickets_taken'].values[0])
multi_wickets.append(data[data['player_name'] == i]['multi_wickets'].values[0])
bowling_eco.append(np.round(data[data['player_name'] == i]['bowling_eco'].values[0], 2))
bowling_sr.append(np.round(data[data['player_name'] == i]['bowling_strike_rate'].values[0], 2))
four_against.append(data[data['player_name'] == i]['four_given'].values[0])
six_against.append(data[data['player_name'] == i]['six_given'].values[0])
catches.append(data[data['player_name'] == i]['catches'].values[0])
run_outs.append(data[data['player_name'] == i]['run_outs'].values[0])
player_runs_dict[i] = runs
player_matches_dict[i] = matches_played
player_sr_dict[i] = sr
player_runs_30_dict[i] = runs_30
player_sr_30_dict[i] = sr_30
player_four_scored_dict[i] = four_for
player_six_scored_dict[i] = six_for
player_wickets_dict[i] = wickets
player_multi_wickets_dict[i] = multi_wickets
player_bowling_eco_dict[i] = bowling_eco
player_bowling_sr_dict[i] = bowling_sr
player_four_given_dict[i] = four_against
player_six_given_dict[i] = six_against
player_catches_dict[i] = catches
player_runouts_dict[i] = run_outs
winning_years_team = {}
for player in all_players:
winner = []
for i in all_teams:
for game in all_data:
try:
if player in game['info']['players'][i]:
try:
if game['info']['event']['stage'] == 'Final' and game['info']['outcome']['winner'] == i:
winner.append(game['info']['dates'][0][:4])
except:
None
except:
None
winning_years_team[player] = winner
team_player_stats_2008 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2008')
team_player_stats_2009 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2009')
team_player_stats_2010 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2010')
team_player_stats_2011 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2011')
team_player_stats_2012 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2012')
team_player_stats_2013 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2013')
team_player_stats_2014 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2014')
team_player_stats_2015 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2015')
team_player_stats_2016 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2016')
team_player_stats_2017 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2017')
team_player_stats_2018 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2018')
team_player_stats_2019 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2019')
team_player_stats_2020 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2020')
team_player_stats_2021 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2021')
team_player_stats_2022 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2022')
team_player_stats_2023 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2023')
team_player_stats_2024 = season_player_team_stats(all_data, all_teams, all_players, all_teams, year='2024')
all_team_player_stats = [team_player_stats_2008, team_player_stats_2009, team_player_stats_2010,
team_player_stats_2011, team_player_stats_2012, team_player_stats_2013,
team_player_stats_2014, team_player_stats_2015, team_player_stats_2016,
team_player_stats_2017, team_player_stats_2018, team_player_stats_2019,
team_player_stats_2020, team_player_stats_2021, team_player_stats_2022,
team_player_stats_2023, team_player_stats_2024]
def top_5_performers_all_team(team_player_stats, sortby='total_runs'):
'''
A function which takes a dictionary of team_player stats,
team name and returns the best players in the team for the season,
most runs, most wickets, most catches, dot_balls, most 4s, 6s.
'''
return_dict = {}
for team in team_player_stats.keys():
return_dict[team] = [k for k, v in sorted(team_player_stats[team].items(), key=lambda item: item[1][sortby], reverse=True)][:5]
return return_dict
top_5_runs_scored_2008 = top_5_performers_all_team(team_player_stats_2008)
top_5_wickets_2008 = top_5_performers_all_team(team_player_stats_2008, sortby='total_wickets')
top_5_catches_2008 = top_5_performers_all_team(team_player_stats_2008, sortby='total_catches')
top_5_runs_given_2008 = top_5_performers_all_team(team_player_stats_2008, sortby='total_runs_given')
top_5_dot_balls_2008 = top_5_performers_all_team(team_player_stats_2008, sortby='total_dot_balls_bowled')
top_5_four_for_2008 = top_5_performers_all_team(team_player_stats_2008, sortby='total_four_for')
top_5_six_for_2008 = top_5_performers_all_team(team_player_stats_2008, sortby='total_six_for')
plot_team_top_5(top_5_runs_scored_2008, team_player_stats_2008,'Mumbai Indians', yval='runs')
plot_team_top_5(top_5_wickets_2008, team_player_stats_2008, 'Mumbai Indians', yval='wickets')
plot_team_top_5(top_5_runs_scored_2008, team_player_stats_2008,'Chennai Super Kings', yval='runs')
plot_team_top_5(top_5_wickets_2008, team_player_stats_2008, 'Chennai Super Kings', yval='wickets')
plot_team_top_5(top_5_runs_scored_2008, team_player_stats_2008,'Kolkata Knight Riders', yval='runs')
plot_team_top_5(top_5_wickets_2008, team_player_stats_2008, 'Kolkata Knight Riders', yval='wickets')
plot_team_top_5(top_5_runs_scored_2008, team_player_stats_2008,'Rajasthan Royals', yval='runs')
plot_team_top_5(top_5_wickets_2008, team_player_stats_2008, 'Rajasthan Royals', yval='wickets')
plot_team_top_5(top_5_runs_scored_2008, team_player_stats_2008,'Delhi Daredevils', yval='runs')
plot_team_top_5(top_5_wickets_2008, team_player_stats_2008, 'Delhi Daredevils', yval='wickets')
plot_team_top_5(top_5_runs_scored_2008, team_player_stats_2008,'Kings XI Punjab', yval='runs')
plot_team_top_5(top_5_wickets_2008, team_player_stats_2008, 'Kings XI Punjab', yval='wickets')
plot_team_top_5(top_5_runs_scored_2008, team_player_stats_2008,'Deccan Chargers', yval='runs')
plot_team_top_5(top_5_wickets_2008, team_player_stats_2008, 'Deccan Chargers', yval='wickets')
plot_team_top_5(top_5_runs_scored_2008, team_player_stats_2008,'Royal Challengers Bangalore', yval='runs')
plot_team_top_5(top_5_wickets_2008, team_player_stats_2008, 'Royal Challengers Bangalore', yval='wickets')
top_5_runs_scored_2016 = top_5_performers_all_team(team_player_stats_2016)
top_5_wickets_2016 = top_5_performers_all_team(team_player_stats_2016, sortby='total_wickets')
top_5_catches_20016 = top_5_performers_all_team(team_player_stats_2016, sortby='total_catches')
top_5_runs_given_2016 = top_5_performers_all_team(team_player_stats_2016, sortby='total_runs_given')
top_5_dot_balls_2016 = top_5_performers_all_team(team_player_stats_2016, sortby='total_dot_balls_bowled')
top_5_four_for_2016 = top_5_performers_all_team(team_player_stats_2016, sortby='total_four_for')
top_5_six_for_2016 = top_5_performers_all_team(team_player_stats_2016, sortby='total_six_for')
player_16.head()
| player_name | matches_played | innings_batted | innings_bowled | matches_won | runs_scored | balls_played | batting_avg | batting_strike_rate | catches | run_outs | balls_bowled | runs_given | wickets_taken | wickets_per_innings | bowling_avg | bowling_strike_rate | bowling_eco | four_scored | six_scored | four_given | six_given | extras_for | extras_against | scores_above_30 | strike_rate_30 | multi_wickets | man_of_match | trophies | formula_batter | formula_bowler | formula_fielder | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | DA Warner | 17 | 17 | 0 | 11 | 848 | 579 | 49.882353 | 146.459413 | 4 | 0 | 0 | 0 | 0 | 0.0 | 0.0 | 0.0 | 0.0 | 88 | 31 | 0 | 0 | 36 | 0 | 16 | 157.743503 | 0 | 3 | 1 | 2692.778403 | 0.0 | 7 |
| 1 | S Dhawan | 17 | 17 | 0 | 11 | 501 | 438 | 29.470588 | 114.383562 | 5 | 1 | 0 | 0 | 0 | 0.0 | 0.0 | 0.0 | 0.0 | 51 | 8 | 0 | 0 | 22 | 0 | 12 | 118.780377 | 0 | 0 | 1 | 1513.835111 | 0.0 | 6 |
| 2 | MC Henriques | 17 | 15 | 17 | 11 | 182 | 162 | 12.133333 | 112.345679 | 11 | 3 | 318 | 409 | 12 | 0.705882 | 34.083333 | 26.5 | 7.716981 | 15 | 6 | 29 | 16 | 7 | 9 | 4 | 184.52381 | 3 | 1 | 1 | 771.228571 | 15.705882 | 15 |
| 3 | Yuvraj Singh | 10 | 10 | 5 | 7 | 236 | 183 | 23.6 | 128.961749 | 1 | 1 | 38 | 51 | 0 | 0.0 | 0.0 | 0.0 | 8.052632 | 22 | 13 | 2 | 2 | 6 | 1 | 7 | 156.219662 | 0 | 0 | 1 | 1152.137634 | 0.0 | 2 |
| 4 | DJ Hooda | 17 | 15 | 6 | 11 | 144 | 125 | 9.6 | 115.2 | 3 | 2 | 80 | 94 | 3 | 0.5 | 31.333333 | 26.666667 | 7.05 | 9 | 5 | 6 | 3 | 7 | 3 | 1 | 154.545455 | 1 | 0 | 1 | 178.145455 | 4.5 | 5 |
plot_team_top_5(top_5_runs_scored_2016, team_player_stats_2016,'Mumbai Indians', yval='runs')
plot_team_top_5(top_5_wickets_2016, team_player_stats_2016, 'Mumbai Indians', yval='wickets')
plot_team_top_5(top_5_runs_scored_2016, team_player_stats_2016,'Chennai Super Kings', yval='runs')
plot_team_top_5(top_5_wickets_2016, team_player_stats_2016, 'Chennai Super Kings', yval='wickets')
plot_team_top_5(top_5_runs_scored_2016, team_player_stats_2016,'Kolkata Knight Riders', yval='runs')
plot_team_top_5(top_5_wickets_2016, team_player_stats_2016, 'Kolkata Knight Riders', yval='wickets')
plot_team_top_5(top_5_runs_scored_2016, team_player_stats_2016,'Rajasthan Royals', yval='runs')
plot_team_top_5(top_5_wickets_2016, team_player_stats_2016, 'Rajasthan Royals', yval='wickets')
plot_team_top_5(top_5_runs_scored_2016, team_player_stats_2016,'Royal Challengers Bangalore', yval='runs')
plot_team_top_5(top_5_wickets_2016, team_player_stats_2016, 'Royal Challengers Bangalore', yval='wickets')
plot_team_top_5(top_5_runs_scored_2016, team_player_stats_2016,'Sunrisers Hyderabad', yval='runs')
plot_team_top_5(top_5_wickets_2016, team_player_stats_2016, 'Sunrisers Hyderabad', yval='wickets')
plot_team_top_5(top_5_runs_scored_2016, team_player_stats_2016,'Delhi Daredevils', yval='runs')
plot_team_top_5(top_5_wickets_2016, team_player_stats_2016, 'Delhi Daredevils', yval='wickets')
plot_team_top_5(top_5_runs_scored_2016, team_player_stats_2016,'Kings XI Punjab', yval='runs')
plot_team_top_5(top_5_wickets_2016, team_player_stats_2016, 'Kings XI Punjab', yval='wickets')
top_5_runs_scored_2024 = top_5_performers_all_team(team_player_stats_2024)
top_5_wickets_2024 = top_5_performers_all_team(team_player_stats_2024, sortby='total_wickets')
top_5_catches_20024 = top_5_performers_all_team(team_player_stats_2024, sortby='total_catches')
top_5_runs_given_2024 = top_5_performers_all_team(team_player_stats_2024, sortby='total_runs_given')
top_5_dot_balls_2024 = top_5_performers_all_team(team_player_stats_2024, sortby='total_dot_balls_bowled')
top_5_four_for_2024 = top_5_performers_all_team(team_player_stats_2024, sortby='total_four_for')
top_5_six_for_2024 = top_5_performers_all_team(team_player_stats_2024, sortby='total_six_for')
player_24.head()
| player_name | matches_played | innings_batted | innings_bowled | matches_won | runs_scored | balls_played | batting_avg | batting_strike_rate | catches | run_outs | balls_bowled | runs_given | wickets_taken | wickets_per_innings | bowling_avg | bowling_strike_rate | bowling_eco | four_scored | six_scored | four_given | six_given | extras_for | extras_against | scores_above_30 | strike_rate_30 | multi_wickets | man_of_match | trophies | formula_batter | formula_bowler | formula_fielder | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | DA Warner | 8 | 8 | 0 | 2 | 168 | 130 | 21.0 | 129.230769 | 5 | 0 | 0 | 0 | 0 | 0.0 | 0.0 | 0.0 | 0.0 | 17 | 10 | 0 | 0 | 13 | 0 | 3 | 147.086835 | 0 | 0 | 0 | 489.260504 | 0.0 | 5 |
| 1 | S Dhawan | 5 | 5 | 0 | 2 | 152 | 125 | 30.4 | 121.6 | 3 | 0 | 0 | 0 | 0 | 0.0 | 0.0 | 0.0 | 0.0 | 18 | 4 | 0 | 0 | 6 | 0 | 3 | 125.614035 | 0 | 0 | 0 | 429.242105 | 0.0 | 3 |
| 2 | MC Henriques | 0 | 0 | 0 | 0 | 0 | 0 | 0.0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0.0 | 0.0 | 0.0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NaN | 0 | 0 | 0 | NaN | 0.0 | 0 |
| 3 | Yuvraj Singh | 0 | 0 | 0 | 0 | 0 | 0 | 0.0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0.0 | 0.0 | 0.0 | 0.0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | NaN | 0 | 0 | 0 | NaN | 0.0 | 0 |
| 4 | DJ Hooda | 11 | 9 | 2 | 4 | 145 | 107 | 16.111111 | 135.514019 | 4 | 0 | 19 | 21 | 0 | 0.0 | 0.0 | 0.0 | 6.631579 | 16 | 3 | 2 | 0 | 6 | 1 | 2 | 156.25 | 0 | 0 | 0 | 347.611111 | 0.0 | 4 |
plot_team_top_5(top_5_runs_scored_2024, team_player_stats_2024,'Kolkata Knight Riders', yval='runs')
plot_team_top_5(top_5_wickets_2024, team_player_stats_2024, 'Kolkata Knight Riders', yval='wickets')
plot_team_top_5(top_5_runs_scored_2024, team_player_stats_2024,'Chennai Super Kings', yval='runs')
plot_team_top_5(top_5_wickets_2024, team_player_stats_2024, 'Chennai Super Kings', yval='wickets')
plot_team_top_5(top_5_runs_scored_2024, team_player_stats_2024,'Mumbai Indians', yval='runs')
plot_team_top_5(top_5_wickets_2024, team_player_stats_2024, 'Mumbai Indians', yval='wickets')
plot_team_top_5(top_5_runs_scored_2024, team_player_stats_2024,'Rajasthan Royals', yval='runs')
plot_team_top_5(top_5_wickets_2024, team_player_stats_2024, 'Rajasthan Royals', yval='wickets')
plot_team_top_5(top_5_runs_scored_2024, team_player_stats_2024,'Royal Challengers Bengaluru', yval='runs')
plot_team_top_5(top_5_wickets_2024, team_player_stats_2024, 'Royal Challengers Bengaluru', yval='wickets')
plot_team_top_5(top_5_runs_scored_2024, team_player_stats_2024,'Sunrisers Hyderabad', yval='runs')
plot_team_top_5(top_5_wickets_2024, team_player_stats_2024, 'Sunrisers Hyderabad', yval='wickets')
plot_team_top_5(top_5_runs_scored_2024, team_player_stats_2024,'Delhi Capitals', yval='runs')
plot_team_top_5(top_5_wickets_2024, team_player_stats_2024, 'Delhi Capitals', yval='wickets')
plot_team_top_5(top_5_runs_scored_2024, team_player_stats_2024, 'Punjab Kings', yval='runs')
plot_team_top_5(top_5_wickets_2024, team_player_stats_2024, 'Punjab Kings', yval='wickets')
#player_df['formula_batter'] = ((player_df['four_scored'] + player_df['six_scored'] + player_df['batting_avg']) + (player_df['scores_above_30'] * player_df['strike_rate_30']))
#player_df['formula_bowler'] = ((player_df['wickets_taken'] + player_df['multi_wickets']) + (player_df['wickets_taken']/player_df['matches_played']))
#player_df['formula_fielder'] = (player_df['man_of_match'] + player_df['catches'] + player_df['run_outs'])
top_20_2010_14_bat = player_df_2010_14.sort_values('formula_batter', ascending=False).head(20)['player_name']
top_20_2015_19_bat = player_df_2015_19.sort_values('formula_batter', ascending=False).head(20)['player_name']
top_20_2020_24_bat = player_df_2020_24.sort_values('formula_batter', ascending=False).head(20)['player_name']
top_20_2010_14_bowl = player_df_2010_14.sort_values('formula_bowler', ascending=False).head(20)['player_name']
top_20_2015_19_bowl = player_df_2015_19.sort_values('formula_bowler', ascending=False).head(20)['player_name']
top_20_2020_24_bowl = player_df_2020_24.sort_values('formula_bowler', ascending=False).head(20)['player_name']
top_20_2010_14_field = player_df_2010_14.sort_values('formula_fielder', ascending=False).head(20)['player_name']
top_20_2015_19_field = player_df_2015_19.sort_values('formula_fielder', ascending=False).head(20)['player_name']
top_20_2020_24_field = player_df_2020_24.sort_values('formula_fielder', ascending=False).head(20)['player_name']
for player in top_20_2010_14_bat[:10]:
#print(type(player))
try:
fig = px.scatter(player_runs_dict, y=str(player), x=years, hover_data=[player_sr_dict[player], player_matches_dict[player]])
fig.add_trace(go.Scatter(x=winning_years_team[str(player)],
mode='markers', name='winning_year'))
#fig.update_traces(hovertext=player_sr_dict[player])
fig.update_layout(xaxis_title='years', title='2010-2014')
fig.show()
except Exception as e:
print(str(e))
for player in top_20_2015_19_bat[:10]:
#print(type(player))
try:
fig = px.scatter(player_runs_dict, y=str(player), x=years, hover_data=[player_sr_dict[player], player_matches_dict[player]])
fig.add_trace(go.Scatter(x=winning_years_team[str(player)],
mode='markers', name='winning_year'))
#fig.update_traces(hovertext=player_sr_dict[player])
fig.update_layout(xaxis_title='years', title='2015-2019')
fig.show()
except Exception as e:
print(str(e))
for player in top_20_2020_24_bat[:10]:
#print(type(player))
try:
fig = px.scatter(player_runs_dict, y=str(player), x=years, hover_data=[player_sr_dict[player], player_matches_dict[player]])
fig.add_trace(go.Scatter(x=winning_years_team[str(player)],
mode='markers', name='winning_year'))
#fig.update_traces(hovertext=player_sr_dict[player])
fig.update_layout(xaxis_title='years', title='2020-2024')
fig.show()
except Exception as e:
print(str(e))
for player in top_20_2010_14_bowl[:10]:
#print(type(player))
try:
fig = px.scatter(player_wickets_dict, y=str(player), x=years, hover_data=[player_bowling_eco_dict[player], player_matches_dict[player]])
fig.add_trace(go.Scatter(x=winning_years_team[str(player)],
mode='markers', name='winning_year'))
#fig.update_traces(hovertext=player_sr_dict[player])
fig.update_layout(xaxis_title='years', title='2010-2014')
fig.show()
except Exception as e:
print(str(e))
for player in top_20_2015_19_bowl[:10]:
#print(type(player))
try:
fig = px.scatter(player_wickets_dict, y=str(player), x=years, hover_data=[player_bowling_eco_dict[player], player_matches_dict[player]])
fig.add_trace(go.Scatter(x=winning_years_team[str(player)],
mode='markers', name='winning_year'))
#fig.update_traces(hovertext=player_sr_dict[player])
fig.update_layout(xaxis_title='years', title='2015-2019')
fig.show()
except Exception as e:
print(str(e))
for player in top_20_2020_24_bowl[:10]:
#print(type(player))
try:
fig = px.scatter(player_wickets_dict, y=str(player), x=years, hover_data=[player_bowling_eco_dict[player], player_matches_dict[player]])
fig.add_trace(go.Scatter(x=winning_years_team[str(player)],
mode='markers', name='winning_year'))
#fig.update_traces(hovertext=player_sr_dict[player])
fig.update_layout(xaxis_title='years', title='2020-2024')
fig.show()
except Exception as e:
print(str(e))
for player in top_20_2010_14_field[:10]:
#print(type(player))
try:
fig = px.scatter(player_catches_dict, y=str(player), x=years, hover_data=[player_runouts_dict[player], player_matches_dict[player]])
fig.add_trace(go.Scatter(x=winning_years_team[str(player)],
mode='markers', name='winning_year'))
#fig.update_traces(hovertext=player_sr_dict[player])
fig.update_layout(xaxis_title='years', title='2010-2014')
fig.show()
except Exception as e:
print(str(e))
for player in top_20_2015_19_field[:10]:
#print(type(player))
try:
fig = px.scatter(player_catches_dict, y=str(player), x=years, hover_data=[player_runouts_dict[player], player_matches_dict[player]])
fig.add_trace(go.Scatter(x=winning_years_team[str(player)],
mode='markers', name='winning_year'))
#fig.update_traces(hovertext=player_sr_dict[player])
fig.update_layout(xaxis_title='years', title='2015-2019')
fig.show()
except Exception as e:
print(str(e))
for player in top_20_2020_24_field[:10]:
#print(type(player))
try:
fig = px.scatter(player_catches_dict, y=str(player), x=years, hover_data=[player_runouts_dict[player], player_matches_dict[player]])
fig.add_trace(go.Scatter(x=winning_years_team[str(player)],
mode='markers', name='winning_year'))
#fig.update_traces(hovertext=player_sr_dict[player])
fig.update_layout(xaxis_title='years', title='2020-2024')
fig.show()
except Exception as e:
print(str(e))
all_mi = []
all_csk = []
all_hyd = []
all_rcb = []
all_pk = []
all_rr = []
all_dd = []
all_kkr = []
all_gt = []
all_lsg = []
for i in all_data:
for j in i['info']['teams']:
if j == 'Mumbai Indians':
all_mi.append(i)
for i in all_data:
for j in i['info']['teams']:
if j in ['Sunrisers Hyderabad', 'Deccan Chargers']:
all_hyd.append(i)
for i in all_data:
for j in i['info']['teams']:
if j == 'Royal Challengers Bangalore':
all_rcb.append(i)
for i in all_data:
for j in i['info']['teams']:
if j == 'Chennai Super Kings':
all_csk.append(i)
for i in all_data:
for j in i['info']['teams']:
if j in ['Punjab Kings', 'Kings XI Punjab']:
all_pk.append(i)
for i in all_data:
for j in i['info']['teams']:
if j == 'Rajasthan Royals':
all_rr.append(i)
for i in all_data:
for j in i['info']['teams']:
if j in ['Delhi Daredevils', 'Delhi Capitals']:
all_dd.append(i)
for i in all_data:
for j in i['info']['teams']:
if j == 'Kolkata Knight Riders':
all_kkr.append(i)
for i in all_data:
for j in i['info']['teams']:
if j == 'Gujarat Titans':
all_gt.append(i)
for i in all_data:
for j in i['info']['teams']:
if j == 'Lucknow Super Giants':
all_lsg.append(i)
winning_years = {}
losing_years = {}
for team in all_teams:
winners = []
losers = []
for data in all_data:
try:
if data['info']['event']['stage'] == 'Final' and data['info']['outcome']['winner'] == team:
winners.append(data['info']['dates'][0][:4])
except:
None
try:
if data['info']['event']['stage'] == 'Final' and data['info']['outcome']['winner'] != team:
losers.append(data['info']['dates'][0][:4])
except:
None
winning_years[team] = winners
losing_years[team] = losers
winning_years
{'Sunrisers Hyderabad': ['2016'],
'Royal Challengers Bangalore': [],
'Rising Pune Supergiant': [],
'Mumbai Indians': ['2017', '2019', '2020', '2013', '2015'],
'Gujarat Lions': [],
'Kolkata Knight Riders': ['2024', '2012', '2014'],
'Kings XI Punjab': [],
'Delhi Daredevils': [],
'Chennai Super Kings': ['2018', '2021', '2023', '2010', '2011'],
'Rajasthan Royals': ['2008'],
'Delhi Capitals': [],
'Punjab Kings': [],
'Lucknow Super Giants': [],
'Gujarat Titans': ['2022'],
'Royal Challengers Bengaluru': [],
'Deccan Chargers': ['2009'],
'Kochi Tuskers Kerala': [],
'Pune Warriors': [],
'Rising Pune Supergiants': []}
winning_years['Sunrisers Hyderabad'].append('2009')
all_cols = ['player_name', 'matches_played', 'innings_batted', 'innings_bowled', 'matches_won', 'runs_scored',
'balls_played', 'batting_avg', 'batting_strike_rate', 'catches', 'run_outs', 'balls_bowled', 'runs_given',
'wickets_taken', 'wickets_per_innings', 'bowling_avg', 'bowling_strike_rate', 'bowling_eco',
'four_scored', 'six_scored', 'four_given', 'six_given', 'extras_for', 'extras_against', 'scores_above_30',
'strike_rate_30', 'multi_wickets', 'man_of_match', 'trophies', 'formula_batter', 'formula_bowler', 'formula_fielder']
all_players_year_df = pd.DataFrame(columns=all_cols)
mi_winning_player_stats = all_players_stats_year_list(all_players, all_data, all_players_year_df, winning_years['Mumbai Indians'])
#mi_winning_player_stats = mi_winning_player_stats[mi_winning_player_stats['matches_played'] != 0 ]
all_players_year_df = pd.DataFrame(columns=all_cols)
csk_winning_player_stats = all_players_stats_year_list(all_players, all_data, all_players_year_df, winning_years['Chennai Super Kings'])
#csk_winning_player_stats = csk_winning_player_stats[csk_winning_player_stats['matches_played'] != 0 ]
all_players_year_df = pd.DataFrame(columns=all_cols)
kkr_winning_player_stats = all_players_stats_year_list(all_players, all_data, all_players_year_df, winning_years['Kolkata Knight Riders'])
#kkr_winning_player_stats = kkr_winning_player_stats[kkr_winning_player_stats['matches_played'] != 0 ]
all_players_year_df = pd.DataFrame(columns=all_cols)
rr_winning_player_stats = all_players_stats_year_list(all_players, all_data, all_players_year_df, winning_years['Rajasthan Royals'])
#srh_winning_player_stats = srh_winning_player_stats[srh_winning_player_stats['matches_played'] != 0 ]
all_players_year_df = pd.DataFrame(columns=all_cols)
gt_winning_player_stats = all_players_stats_year_list(all_players, all_data, all_players_year_df, winning_years['Gujarat Titans'])
#gt_winning_player_stats = gt_winning_player_stats[gt_winning_player_stats['matches_played'] != 0 ]
player_team['KA Pollard']
[{'Mumbai Indians': ['2017',
'2018',
'2019',
'2020',
'2021',
'2022',
'2010',
'2011',
'2012',
'2013',
'2014',
'2015',
'2016']}]
winning_years['Mumbai Indians']
['2017', '2019', '2020', '2013', '2015']
formula_scatterplot(mi_winning_player_stats, 'formula_batter', 'runs_scored',
'scores_above_30', 'batting_strike_rate', 'strike_rate_30',
'six_scored', 'matches_played', ['player_name', 'innings_batted', 'runs_scored', 'scores_above_30'])
player_team['PA Patel']
[{'Sunrisers Hyderabad': ['2013']},
{'Royal Challengers Bangalore': ['2018', '2019', '2014']},
{'Mumbai Indians': ['2017', '2015', '2016']},
{'Chennai Super Kings': ['2008', '2009', '2010']},
{'Deccan Chargers': ['2012']},
{'Kochi Tuskers Kerala': ['2011']}]
formula_scatterplot(mi_winning_player_stats, 'formula_bowler', 'wickets_taken',
'bowling_eco', 'wickets_taken', 'six_given',
'multi_wickets', 'matches_played', ['player_name', 'innings_bowled', 'bowling_eco'])
mi_years_around_wins = ['2012', '2014', '2016', '2018', '2021']
mi_winning_player_stats_2012_14_16_18_21 = all_players_stats_year_list(all_players, all_data, all_players_year_df, mi_years_around_wins)
formula_scatterplot(mi_winning_player_stats_2012_14_16_18_21, 'formula_batter', 'runs_scored',
'scores_above_30', 'batting_strike_rate', 'strike_rate_30',
'six_scored', 'matches_played', ['player_name', 'innings_batted', 'runs_scored', 'scores_above_30'])
player_team['GJ Maxwell']
[{'Royal Challengers Bangalore': ['2021', '2022', '2023']},
{'Mumbai Indians': ['2013']},
{'Kings XI Punjab': ['2017', '2020', '2014', '2015', '2016']},
{'Delhi Daredevils': ['2018', '2012']},
{'Royal Challengers Bengaluru': ['2024']}]
formula_scatterplot(mi_winning_player_stats_2012_14_16_18_21, 'formula_bowler', 'wickets_taken',
'bowling_eco', 'wickets_taken', 'six_given',
'multi_wickets', 'matches_played', ['player_name', 'innings_bowled', 'bowling_eco'])
winning_years['Chennai Super Kings']
['2018', '2021', '2023', '2010', '2011']
csk_years_around_wins = ['2012', '2013', '2014', '2015', '2016']
csk_winning_player_stats_2012_13_14_15_16 = all_players_stats_year_list(all_players, all_data, all_players_year_df, csk_years_around_wins)
formula_scatterplot(csk_winning_player_stats, 'formula_batter', 'runs_scored',
'scores_above_30', 'batting_strike_rate', 'strike_rate_30',
'six_scored', 'matches_played', ['player_name', 'innings_batted', 'batting_strike_rate', 'runs_scored', 'scores_above_30'])
formula_scatterplot(csk_winning_player_stats, 'formula_bowler', 'wickets_taken',
'bowling_eco', 'wickets_taken', 'six_given',
'multi_wickets', 'matches_played', ['player_name', 'innings_bowled', 'bowling_eco',
'wickets_taken'])
formula_scatterplot(csk_winning_player_stats_2012_13_14_15_16, 'formula_batter', 'runs_scored',
'scores_above_30', 'batting_strike_rate', 'strike_rate_30',
'six_scored', 'matches_played', ['player_name', 'innings_batted', 'runs_scored', 'scores_above_30'])
player_team['SR Watson']
[{'Royal Challengers Bangalore': ['2017', '2016']},
{'Chennai Super Kings': ['2018', '2019', '2020']},
{'Rajasthan Royals': ['2008',
'2010',
'2011',
'2012',
'2013',
'2014',
'2015']}]
formula_scatterplot(csk_winning_player_stats_2012_13_14_15_16, 'formula_bowler', 'wickets_taken',
'bowling_eco', 'wickets_taken', 'six_given',
'multi_wickets', 'matches_played', ['player_name', 'innings_bowled', 'bowling_eco',
'wickets_taken'])
player_team['Harbhajan Singh']
[{'Mumbai Indians': ['2017',
'2008',
'2009',
'2010',
'2011',
'2012',
'2013',
'2014',
'2015',
'2016']},
{'Kolkata Knight Riders': ['2021']},
{'Chennai Super Kings': ['2018', '2019']}]
winning_years['Kolkata Knight Riders']
['2024', '2012', '2014']
formula_scatterplot(kkr_winning_player_stats, 'formula_batter', 'runs_scored',
'scores_above_30', 'batting_strike_rate', 'runs_scored',
'six_scored', 'matches_played', ['player_name', 'innings_batted', 'runs_scored', 'scores_above_30'])
formula_scatterplot(kkr_winning_player_stats, 'formula_bowler', 'wickets_taken',
'bowling_eco', 'wickets_taken', 'six_given',
'multi_wickets', 'matches_played', ['player_name', 'innings_bowled', 'bowling_eco',
'wickets_taken'])
winning_years['Rajasthan Royals']
['2008']
formula_scatterplot(rr_winning_player_stats, 'formula_batter', 'runs_scored',
'scores_above_30', 'batting_strike_rate', 'runs_scored',
'six_scored', 'matches_played', ['player_name', 'innings_batted', 'runs_scored', 'scores_above_30'])
formula_scatterplot(rr_winning_player_stats, 'formula_bowler', 'wickets_taken',
'bowling_eco', 'wickets_taken', 'six_given',
'multi_wickets', 'matches_played', ['player_name', 'innings_bowled', 'bowling_eco',
'wickets_taken'])
winning_years['Gujarat Titans']
['2022']
formula_scatterplot(gt_winning_player_stats, 'formula_batter', 'runs_scored',
'scores_above_30', 'batting_strike_rate', 'runs_scored',
'six_scored', 'matches_played', ['player_name', 'innings_batted','batting_strike_rate', 'runs_scored', 'scores_above_30'])
formula_scatterplot(gt_winning_player_stats, 'formula_bowler', 'wickets_taken',
'bowling_eco', 'wickets_taken', 'six_given',
'multi_wickets', 'matches_played', ['player_name', 'innings_bowled', 'bowling_eco',
'wickets_taken'])